﻿namespace Ln.Fram.Core.Helper;

public class DateHelper
{
	public static DateTime StampToDateTime(string time)
	{
		time = time.Substring(0, 10);
		double timestamp = Convert.ToInt64(time);
		DateTime dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0);
		dateTime = dateTime.AddSeconds(timestamp).ToLocalTime();
		return dateTime;
	}

	public static string TimeSubTract(DateTime time1, DateTime time2)
	{
		TimeSpan subTract = time1.Subtract(time2);
		return $"{subTract.Days} 天 {subTract.Hours} 时 {subTract.Minutes} 分 ";
	}
	/// <summary>
	///  时间戳转本地时间-时间戳精确到秒

	/// </summary> 
	public static DateTime ToLocalTimeDateBySeconds(long unix)
	{
		var dto = DateTimeOffset.FromUnixTimeSeconds(unix);
		return dto.ToLocalTime().DateTime;
	}

	/// <summary>
	///  时间转时间戳Unix-时间戳精确到秒

	/// </summary> 
	public static long ToUnixTimestampBySeconds(DateTime dt)
	{
		DateTimeOffset dto = new DateTimeOffset(dt);
		return dto.ToUnixTimeSeconds();
	}


	/// <summary>
	///  时间戳转本地时间-时间戳精确到毫秒
	/// </summary> 
	public static DateTime ToLocalTimeDateByMilliseconds(long unix)
	{
		var dto = DateTimeOffset.FromUnixTimeMilliseconds(unix);
		return dto.ToLocalTime().DateTime;
	}

	/// <summary>
	///  时间转时间戳Unix-时间戳精确到毫秒
	/// </summary> 
	public static long ToUnixTimestampByMilliseconds(DateTime dt)
	{
		DateTimeOffset dto = new DateTimeOffset(dt);
		return dto.ToUnixTimeMilliseconds();
	}
}
